﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace WBasicClassLib.Helper
{
    /// <summary>
    /// 实用类：对文件的操作
    /// </summary>
    public class FileHelper
    {
        #region 直接从给定路径的文件里取出所有内容放到string变量中并返回
        
        /// <summary>
        /// 直接从给定路径的文件里取出所有内容放到string变量中并返回
        /// </summary>
        /// <param name="Path">指定文件的完整路径</param>
        /// <param name="Ecd">指定的字符编码</param>
        /// <returns>文件的内容</returns>
        public static string ReadStringFromFile(string Path, Encoding Ecd)
        {
            try
            {
                FileStream fs = File.OpenRead(Path);
                StreamReader sr = new StreamReader(fs, Ecd, false);
                string result = sr.ReadToEnd();
                sr.Close();
                fs.Close();
                return result;
            }
            catch (Exception ex)
            {
                //不处理异常，直接抛出
                throw ex;
            }
        }

        #endregion

        #region 将string变量中保存的内容直接输入到指定路径的文件中

        /// <summary>
        /// 将string变量中保存的内容直接输入到指定路径的文件中
        /// </summary>
        /// <param name="Path">指定文件的完整路径</param>
        /// <param name="Source">要写入的内容</param>
        /// <param name="Ecd">指定的字符编码</param>
        public static void WriteStringToFile(string Path, string Source, Encoding Ecd)
        {
            try
            {
                FileStream fs = File.OpenWrite(Path);
                StreamWriter sw = new StreamWriter(fs, Ecd);
                sw.Write(Source);
                sw.Close();
                fs.Close();
            }
            catch (Exception ex)
            {
                //不做任何处理，直接抛出异常
                throw ex;
            }
        }

        #endregion

        #region 在指定路径上创建一个新的空文件

        /// <summary>
        /// 在指定路径上创建一个新的空文件
        /// </summary>
        /// <param name="Path">指定的文件路径</param>
        public static void CreateFile(string Path)
        {
            try
            {
                FileStream fs = File.Create(Path);
                fs.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        #endregion

        #region  删除指定路径上的文件，如果文件不存在则不作任何处理

        /// <summary>
        /// 删除指定路径上的文件，如果文件不存在则不作任何处理
        /// </summary>
        /// <param name="Path">指定的文件路径</param>
        public static void DeleteFile(string Path)
        {
            if (File.Exists(Path))
            {
                File.Delete(Path);
            }
        }

        #endregion
    }
}
